package com.gc.sql.test;

public final class NestedExpression extends Object {
    private BrOpen leftBracket;
    
    private Expression expression;
    
    private BrClose rightBracket;
    
    public NestedExpression(BrOpen leftBracket, Expression expression, BrClose rightBracket) {
        this.leftBracket = leftBracket;
        this.expression = expression;
        this.rightBracket = rightBracket;
    }
    private NestedExpression() {
    }
    public static LeftBracketBuilder builder() {
        NestedExpression self = new NestedExpression();
        return self.new LeftBracketBuilder ();
    }
    public class LeftBracketBuilder extends Object {
        private LeftBracketBuilder () {}
        public ExpressionBuilder leftBracket() {
            NestedExpression.this.leftBracket = new BrOpen ();
            return NestedExpression.this.new ExpressionBuilder ();
        }
    
    }
    public class ExpressionBuilder extends Object {
        private ExpressionBuilder () {}
        public RightBracketBuilder expression(Expression expression) {
            NestedExpression.this.expression = expression;
            return NestedExpression.this.new RightBracketBuilder ();
        }
    
    }
    public class RightBracketBuilder extends Object {
        private RightBracketBuilder () {}
        public NestedExpression rightBracket() {
            NestedExpression.this.rightBracket = new BrClose ();
            return NestedExpression.this;
        }
    
    }
        @Override
        public String toString() {
            return String.valueOf(leftBracket)+" "+String.valueOf(expression)+" "+String.valueOf(rightBracket);
        }

}
